.. _cmlPmSxStopEmg: cmlPmSxStopEmg ================================ -------------------------------- SYNOPSYS ````````````` .. code-block:: none VT_I4 cmlPmSxStopEmg ([in] VT_I4 BoardID, [in] VT_I4 NodeId, [in] VT_I4 Channel ) DESCRIPTION ````````````` - cmlPmSxStop()/cmlPmSxStopEmg() 함수는 지정한 축에 대한 모션을 정지합니다. cmlPmSxStop() 함수는 정지 시에 감속 후 정지를 수행하며, cmlPmSxStopEmg() 함수는 감속 없이 즉시 정지를 수행합니다. \ - 이 함수의 사용과 호출에 있어, 제공된 ㈜커미조아의 함수 헤더 Visual Basic 에서는 함수의 첨두어 cms 가 붙지 않습니다. PARAMETER ````````````` ▶ BoardID : 사용자가 설정한 디바이스(보드) ID. ▶ NodeId : 사용자가 제어하고자 하는 노드 번호. ▶ Channel : 축 번호. 통합 축으로 관리되는 축 번호를 의미하며, 상수 값으로 0 (Zero Based) 이상, 최대 통합 축 개수 - 1 이하의 값을 축 번호로 설정할 수 있습니다. ▶ IsWaitComplete : cmlPmSxStop() 함수의 인자이며, 이 동작이 완료될 때까지 함수를 반환할 것인지를 결정합니다. .. csv-table:: :widths: 10 90 :header-rows: 1 :stub-columns: 0 Value, Meaning 0 (cmlFALSE), 대상 축의 정지가 완료될 때까지 대기하지 않고 함수를 벗어납니다. 1 (cmlTRUE), 대상 축의 정지가 완료될 때까지 대기합니다. ▶ IsBlocking : cmlPmSxMove() 함수의 인자이며, 완료될 때까지 기다리는 동안 윈도우 메시지를 블록(Blocking)할 것인지를 결정합니다. 단, 쓰레드 내에서 실행할 때는 이 값을 1(cmlTRUE)로 설정해 주어야 합니다. .. csv-table:: :widths: 10 90 :header-rows: 1 :stub-columns: 0 Value, Meaning "| cmsFALSE", " | 블록(Blocking)을 하지 않습니다. 따라서 해당 모션이 완료되는 동안에도 | 윈도우 이벤트를 처리합니다." "| cmsTRUE", " | 블록(Blocking)을 합니다. 따라서 해당 모션이 완료되는 동안에는 윈도우 | 이벤트가 처리되지 않습니다." RETURN VALUE ````````````` +------------+-----------+ | Value | Meaning | +============+===========+ | 음수 | 수행 실패 | +------------+-----------+ | ERR_NONE | 수행 성공 | +------------+-----------+ EXAMPLE ````````` .. code-block:: c++ :linenos: :emphasize-lines: 5 C/C++ #include “ComiMLink2_SDK.h” #include “ComiMLink2_SDK_Def.h” long BoardID = 0; long nChannel = 0; //0번 축으로 설정합니다. //0번 축을 (+)방향으로 이송합니다. cmlPmSxVMoveStart(BoardID, nAxis, cmDIR_P ); Sleep(3000); /*0 번 축을 정지 시킵니다. IsWaitComplete 인자를 cmlTRUE로 설정하면, 대상 축이 정지를 완료 하기 전까지 함수가 반환되지 않습니다.*/ cmlPmSxStop(BoardID, 0, nChannel, cmlTRUE, cmlFALSE ); //cmlPmSxStopEmg() 함수를 사용할 경우 감속 없이 즉시 정지합니다. //cmlPmSxStopEmg(BoardID, 0, nChannel );